package com.cyt.sys.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysAppModule;
import com.cyt.sys.model.po.SysAppModuleEn;
import com.cyt.sys.model.vo.SysAppModuleVo;

import java.util.List;


/**
 * 应用管理service接口类
 *
 *@author dingxu
 *@date 2019-04-02 14:25
 */
public interface SysAppModuleService extends BaseService<SysAppModule> {

    /**
     * 应用管理分页查询接口
     *
     * @param sysAppModuleVo 对象
     * @param pageSize 第几页
     * @param pageNum 每页数量
     * @return ReturnResult 对象
     * @author dingxu
     * @date 2019-04-02 14:25
     */
    ReturnResult page(SysAppModuleVo sysAppModuleVo, int pageSize, int pageNum);

    /**
     * 添加修改应用信息
     *
     *@author dingxu
     *@date 2019-04-02 14:25
     *@param sysAppModuleVo 对象
     *@return ReturnResult
     */
    ReturnResult addOrUpdate(SysAppModuleVo sysAppModuleVo);

    /**
     * 根据id删除应用信息
     *
     *@author dingxu
     *@date 2019-04-02 14:25
     *@param ids 主键数组集字符串
     *@return ReturnResult
     */
    ReturnResult delete(String ids);

    /**
     * 根据id生成密钥对
     *
     *@author dingxu
     *@date 2019-04-02 14:25
     *@param id 主键ID
     *@return ReturnResult
     */
    ReturnResult sendKey(String id) throws Exception;

    /**
     * 根据当前应用id加密菜单表
     *
     *@author dingxu
     *@date 2019-04-09 14:25
     *@param id 主键
     *@return ReturnResult
     */
    ReturnResult encordBassMenu(String id) throws Exception ;

    /**
     * 根据当前应用id加密系统配置表
     *
     *@author dingxu
     *@date 2019-04-09 14:25
     *@param id 主键
     *@return ReturnResult
     */
    ReturnResult encordParamConfig(String id) throws Exception ;

    /**
     * 查询当前是否有有效应用
     *
     *@author dingxu
     *@date 2019-04-03 14:25
     */
    List<SysAppModule> findStatusYes();

    /**
     * 根据当前应用id解密菜单表
     *
     *@author dingxu
     *@date 2019-04-09 14:25
     *@param id 主键
     *@return ReturnResult
     */
    ReturnResult decordBassMenu(String id) throws Exception;

    /**
     * 根据状态获取全部应用
     *
     *@author dingxu
     *@date 2019-04-09 14:25
     *@param status 应用状态
     *@return ReturnResult
     */
    ReturnResult getAllApply(String status);


    /**
     * 下发应用数据
     *
     * @author sunli
     * @date 2019-04-18
     * @param id 应用id
     * @return ReturnResult
     */
    ReturnResult sendApply(String url, String id);

    /**
     *  处理下发的应用数据
     *
     *  @author sunli
     *  @date 2019-04-18
     * @param sysAppModule
     * @return ReturnResult
     */
    ReturnResult receiveApplyData(SysAppModule sysAppModule);

    /**
     * 对下发的数据进行保存
     *
     * @author dingxu
     * @date 2019-04-18
     * @param sysAppModuleEn
     * @return
     */
    ReturnResult receiveAppModule(SysAppModuleEn sysAppModuleEn);

}
